/**
 * 字符串分类
 *
 * 牛牛有N个字符串，他想将这些字符串分类，他认为两个字符串A和B属于同一类需要满足以下条件：
 * A中交换任意位置的两个字符，最终可以得到B，交换的次数不限。比如：abc与bca就是同一类字符串。
 * 现在牛牛想知道这N个字符串可以分成几类。
 *
 * 输入描述:
 * 首先输入一个正整数N（1 <= N <= 50），接下来输入N个字符串，每个字符串长度不超过50。
 *
 * 输出描述:
 * 输出一个整数表示分类的个数。
 */

import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

/**
 * 使用 Set 过滤相同的字符串就可以了
 * 但是前提条件是我们对 String 进行了
 * 排序
 * 时间复杂度 : O(n)
 * 空间复杂度 : O(n)
 */

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int n = in.nextInt();

        // 集合
        Set<String> hash = new HashSet<>();
        for (int i = 0; i < n; i++) {

            // 转化为数组
            char[] nums = in.next().toCharArray();

            // 按照字母顺序进行排序
            Arrays.sort(nums);

            // 拼接字符串
            String s = "";
            for (char c : nums) {
                s += c;
            }

            // 加入集合
            hash.add(s);
        }

        // 返回集合 长度
        System.out.println(hash.size());
    }
}